]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
shell/camera-monitor: Remove hooks before destroying objects
authorSebastian Keller <skeller@gnome.org>
Sat, 12 Aug 2023 15:30:24 +0000 (17:30 +0200)
committerSebastian Keller <skeller@gnome.org>
Tue, 15 Aug 2023 18:36:07 +0000 (20:36 +0200)
Otherwise removing the hook will try to unlink from a list whose
previous element belonged to the already destroyed object.

Fixes: d09d24666 ("shell: Add device monitor for cameras")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2893>

src/shell-camera-monitor.c

index 1b98b7dc88e88010c9a7a40cd1c8c65f521c0d46..1e2e0f14569cf50bb57cda285ed3e658c553465f 100644 (file)
@@ -297,10 +297,10 @@ shell_camera_monitor_disconnect_core (ShellCameraMonitor *monitor)
   g_ptr_array_set_size (monitor->node_list, 0);
   g_clear_handle_id (&monitor->delayed_disable_id, g_source_remove);
 
-  g_clear_pointer ((struct pw_proxy**) &monitor->registry, pw_proxy_destroy);
   spa_hook_remove (&monitor->registry_listener);
-  g_clear_pointer (&monitor->core, pw_core_disconnect);
+  g_clear_pointer ((struct pw_proxy**) &monitor->registry, pw_proxy_destroy);
   spa_hook_remove (&monitor->core_listener);
+  g_clear_pointer (&monitor->core, pw_core_disconnect);
 }
 
 static gboolean